package com.iot.ammeter.service.android.user;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.iot.ammeter.dto.app.register.AppUserRegisterDTO;
import com.iot.ammeter.dto.app.user.AppUserInfoDTO;
import com.iot.ammeter.dto.app.user.AppUserListDTO;
import com.iot.ammeter.dto.app.user.AppUserLoginDTO;
import com.iot.ammeter.entity.android.user.AppUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iot.ammeter.query.android.AppUserQuery;
import com.iot.ammeter.responseResult.ResponseResult;

import java.util.Map;

/**
 * <p>
 * app端用户表 服务类
 * </p>
 *
 * @author yjx
 * @since 2021-10-18
 */
public interface AppUserService extends IService<AppUser> {

    /**
     * 注册app用户
     *
     * @param
     * @param
     * @return
     */
    Map<String, String> appUserRegister(AppUserRegisterDTO appUserRegisterDTO);

    /**
     * 判断app端用户是否被注册
     *
     * @param email 邮箱号
     * @return ResponseResult
     */
    ResponseResult appEmailIsExists(String email);

    /**
     * app用户登录
     *
     * @param appUserLoginDTO 注册信息传输
     * @return
     */
    Map<String, String> appUserLogin(AppUserLoginDTO appUserLoginDTO);

    /**
     * app用户查询信息
     *
     * @param email app用户邮箱
     * @return
     */
    AppUserInfoDTO selectAppUserByEmail(String email);

    /**
     * 获取android用户列表
     *
     * @param page         页码
     * @param pageSize     每页数量
     * @param appUserQuery 查询条件
     * @return android用户列表
     */
    IPage<AppUserListDTO> listAppUser(int page, int pageSize, AppUserQuery appUserQuery);
}
